package yehang.shared.exception;

/**
 * * 错误码和错误信息定义类
 * 1. 错误码定义规则为5为数字
 * 2. 前两位表示业务场景，最后三位表示错误码。例如：100001。10:通用 001:系统未知异常
 * 3. 维护错误码后需要维护错误描述，将他们定义为枚举形式
 * 错误码列表：
 * 10: 通用
 * 000：系统未知异常
 * 001：参数格式校验
 * 002：短信验证码频率太高，稍后再试
 * 11: 采购决策模块
 * 12: 供应商模块
 * 13: 风控模块
 * 14: 战略寻源
 * 15: 合同执行
 * 16：供应商门户
 * 17：系统模块
 * 18：需求模块
 * 19：资源中心
 * 20：小程序PC后端模块
 * 21：小程序APP后端模块
 *
 * @author chenzt
 * @date 2021/11/16
 */
public enum BizCodeEnume {
    /**
     * 系统未知异常
     */
    MATERIALS_ALLOCATION_CHECK_CONTRACT_EXCEPTION(808, "小料分配校验异常"),
    MATERIALS_ALLOCATION_CHECK_STORAGE_EXCEPTION(809, "小料分配校验异常"),

    UNKNOW_EXCEPTION(10000, "系统未知异常"),
    VAILD_EXCEPTION(10001, "参数格式校验失败"),
    TO_MANY_REQUEST(10002, "请求流量过大"),
    VAILD_SMS_CODE_EXCEPTION(10003, "短信验证码频率太高，稍后再试"),
    SSO_AUTH_FAILED(10004, "统一认证失败，未正常获取到用户信息"),
    ACCESS_TOKEN_EXPIRE(10005, "AccessToken过期，请重新获取"),
    ACCESS_TOKEN_IS_NULL(10006, "AccessToken为空"),
    ACCESS_TOKEN_AUTH_ERROR(10007, "AccessToken验证出错，错误信息：%s"),
    USER_INFO_NOT_EXIST(10008, "用户信息不存在或已失效"),
    ERROR_PASSWORD(10009, "错误的密码信息"),
    LOGOUT_ERROR_USER_NOT_EXIST(10010, "退出失败，用户不存在"),
    SSO_AUTH_ERROR(10011, "统一认证失败，失败原因：%s"),
    CLIENT_IDENTITY_REQUST_IS_NULL(10012, "客户端请求头accessClientType为空，无法正确判断请求来源"),
    ERROT_CLIENT_IDENTITY_TYPE(10013, "客户端登录用户身份类型错误，当前类型：[%s]"),
    CURRENT_SCOPE_NO_URI_AUTH(10014, "当前身份权限[%s]无接口访问权限"),
    CURRENT_SCOPE_NO_SYSTEM_AUTH(10015, "当前身份信息[%s]无系统访问权限"),
    ;


    private final int code;

    private final String msg;

    BizCodeEnume(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
